ITP001 Axioms: ITP031^7.ax


%------------------------------------------------------------------------------
% File     : ITP031^7 : TPTP v8.2.0. Bugfixed v7.5.0.
% Domain   : Interactive Theorem Proving
% Axioms   : HOL4 syntactic export, chainy mode
% Version  : [BG+19] axioms.
% English  :

% Refs     : [BG+19] Brown et al. (2019), GRUNGE: A Grand Unified ATP Chall
%          : [Gau19] Gauthier (2019), Email to Geoff Sutcliffe
% Source   : [BG+19]
% Names    : numeral_bit.ax [Gau19]
%          : HL4031^7.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   97 (  17 unt;  52 typ;   0 def)
%            Number of atoms       :  133 (  93 equ;   2 cnn)
%            Maximal formula atoms :    7 (   1 avg)
%            Number of connectives :  944 (   2   ~;   1   |;  57   &; 873   @)
%                                         (   9 <=>;   2  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   11 (   5 avg; 873 nst)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :  149 ( 149   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   52 (  50 usr;   5 con; 0-6 aty)
%            Number of variables   :  201 (   2   ^ 189   !;   1   ?; 201   :)
%                                         (   9  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tyop_2Emin_2Ebool,type,
    tyop_2Emin_2Ebool: $tType ).

thf(tyop_2Emin_2Efun,type,
    tyop_2Emin_2Efun: $tType > $tType > $tType ).

thf(tyop_2Enum_2Enum,type,
    tyop_2Enum_2Enum: $tType ).

thf(c_2Ebool_2E_21,type,
    c_2Ebool_2E_21: 
      !>[A_27a: $tType] : ( ( A_27a > $o ) > $o ) ).

thf(c_2Earithmetic_2E_2A,type,
    c_2Earithmetic_2E_2A: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Earithmetic_2E_2B,type,
    c_2Earithmetic_2E_2B: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Earithmetic_2E_2D,type,
    c_2Earithmetic_2E_2D: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebool_2E_2F_5C,type,
    c_2Ebool_2E_2F_5C: $o > $o > $o ).

thf(c_2Enum_2E0,type,
    c_2Enum_2E0: tyop_2Enum_2Enum ).

thf(c_2Eprim__rec_2E_3C,type,
    c_2Eprim__rec_2E_3C: tyop_2Enum_2Enum > tyop_2Enum_2Enum > $o ).

thf(c_2Emin_2E_3D,type,
    c_2Emin_2E_3D: 
      !>[A_27a: $tType] : ( A_27a > A_27a > $o ) ).

thf(c_2Emin_2E_3D_3D_3E,type,
    c_2Emin_2E_3D_3D_3E: $o > $o > $o ).

thf(c_2Ebool_2E_3F,type,
    c_2Ebool_2E_3F: 
      !>[A_27a: $tType] : ( ( A_27a > $o ) > $o ) ).

thf(c_2Earithmetic_2EBIT1,type,
    c_2Earithmetic_2EBIT1: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Earithmetic_2EBIT2,type,
    c_2Earithmetic_2EBIT2: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebit_2EBITWISE,type,
    c_2Ebit_2EBITWISE: tyop_2Enum_2Enum > ( $o > $o > $o ) > tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Enumeral__bit_2EBIT__MODF,type,
    c_2Enumeral__bit_2EBIT__MODF: tyop_2Enum_2Enum > ( tyop_2Enum_2Enum > $o > $o ) > tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebit_2EBIT__MODIFY,type,
    c_2Ebit_2EBIT__MODIFY: tyop_2Enum_2Enum > ( tyop_2Enum_2Enum > $o > $o ) > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Enumeral__bit_2EBIT__REV,type,
    c_2Enumeral__bit_2EBIT__REV: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebit_2EBIT__REVERSE,type,
    c_2Ebit_2EBIT__REVERSE: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebool_2ECOND,type,
    c_2Ebool_2ECOND: 
      !>[A_27a: $tType] : ( $o > A_27a > A_27a > A_27a ) ).

thf(c_2Earithmetic_2EDIV,type,
    c_2Earithmetic_2EDIV: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Earithmetic_2EDIV2,type,
    c_2Earithmetic_2EDIV2: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebit_2EDIV__2EXP,type,
    c_2Ebit_2EDIV__2EXP: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebool_2EF,type,
    c_2Ebool_2EF: $o ).

thf(c_2Ecombin_2EFAIL,type,
    c_2Ecombin_2EFAIL: 
      !>[A_27a: $tType,A_27b: $tType] : ( A_27a > A_27b > A_27a ) ).

thf(c_2Enumeral__bit_2EFDUB,type,
    c_2Enumeral__bit_2EFDUB: ( tyop_2Enum_2Enum > tyop_2Enum_2Enum ) > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Earithmetic_2EFUNPOW,type,
    c_2Earithmetic_2EFUNPOW: 
      !>[A_27a: $tType] : ( ( A_27a > A_27a ) > tyop_2Enum_2Enum > A_27a > A_27a ) ).

thf(c_2Ebool_2ELET,type,
    c_2Ebool_2ELET: 
      !>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > A_27b ) > A_27a > A_27b ) ).

thf(c_2Elogroot_2ELOG,type,
    c_2Elogroot_2ELOG: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebit_2ELOG2,type,
    c_2Ebit_2ELOG2: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebit_2ELOWEST__SET__BIT,type,
    c_2Ebit_2ELOWEST__SET__BIT: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Earithmetic_2EMOD,type,
    c_2Earithmetic_2EMOD: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebit_2EMOD__2EXP,type,
    c_2Ebit_2EMOD__2EXP: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebit_2EMOD__2EXP__EQ,type,
    c_2Ebit_2EMOD__2EXP__EQ: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum > $o ).

thf(c_2Ebit_2EMOD__2EXP__MAX,type,
    c_2Ebit_2EMOD__2EXP__MAX: tyop_2Enum_2Enum > tyop_2Enum_2Enum > $o ).

thf(c_2Earithmetic_2ENUMERAL,type,
    c_2Earithmetic_2ENUMERAL: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Earithmetic_2EODD,type,
    c_2Earithmetic_2EODD: tyop_2Enum_2Enum > $o ).

thf(c_2Ebit_2ESBIT,type,
    c_2Ebit_2ESBIT: $o > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Enumeral__bit_2ESFUNPOW,type,
    c_2Enumeral__bit_2ESFUNPOW: ( tyop_2Enum_2Enum > tyop_2Enum_2Enum ) > tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Enum_2ESUC,type,
    c_2Enum_2ESUC: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebool_2ET,type,
    c_2Ebool_2ET: $o ).

thf(c_2Ebit_2ETIMES__2EXP,type,
    c_2Ebit_2ETIMES__2EXP: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Earithmetic_2EZERO,type,
    c_2Earithmetic_2EZERO: tyop_2Enum_2Enum ).

thf(c_2Ebool_2E_5C_2F,type,
    c_2Ebool_2E_5C_2F: $o > $o > $o ).

thf(c_2Enumeral__bit_2EiBITWISE,type,
    c_2Enumeral__bit_2EiBITWISE: tyop_2Enum_2Enum > ( $o > $o > $o ) > tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Enumeral__bit_2EiDIV2,type,
    c_2Enumeral__bit_2EiDIV2: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Enumeral_2EiDUB,type,
    c_2Enumeral_2EiDUB: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Enumeral__bit_2EiLOG2,type,
    c_2Enumeral__bit_2EiLOG2: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Enumeral__bit_2EiMOD__2EXP,type,
    c_2Enumeral__bit_2EiMOD__2EXP: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Enumeral__bit_2EiSUC,type,
    c_2Enumeral__bit_2EiSUC: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebool_2E_7E,type,
    c_2Ebool_2E_7E: $o > $o ).

thf(logicdef_2E_2F_5C,axiom,
    ! [V0: $o,V1: $o] :
      ( ( c_2Ebool_2E_2F_5C @ V0 @ V1 )
    <=> ( V0
        & V1 ) ) ).

thf(logicdef_2E_5C_2F,axiom,
    ! [V0: $o,V1: $o] :
      ( ( c_2Ebool_2E_5C_2F @ V0 @ V1 )
    <=> ( V0
        | V1 ) ) ).

thf(logicdef_2E_7E,axiom,
    ! [V0: $o] :
      ( ( c_2Ebool_2E_7E @ V0 )
    <=> ( (~) @ V0 ) ) ).

thf(logicdef_2E_3D_3D_3E,axiom,
    ! [V0: $o,V1: $o] :
      ( ( c_2Emin_2E_3D_3D_3E @ V0 @ V1 )
    <=> ( V0
       => V1 ) ) ).

thf(logicdef_2E_3D,axiom,
    ! [A_27a: $tType,V0: A_27a,V1: A_27a] :
      ( ( c_2Emin_2E_3D @ A_27a @ V0 @ V1 )
    <=> ( V0 = V1 ) ) ).

thf(quantdef_2E_21,axiom,
    ! [A_27a: $tType,V0f: A_27a > $o] :
      ( ( c_2Ebool_2E_21 @ A_27a @ V0f )
    <=> ! [V1x: A_27a] : ( V0f @ V1x ) ) ).

thf(quantdef_2E_3F,axiom,
    ! [A_27a: $tType,V0f: A_27a > $o] :
      ( ( c_2Ebool_2E_3F @ A_27a @ V0f )
    <=> ? [V1x: A_27a] : ( V0f @ V1x ) ) ).

thf(thm_2Enumeral__bit_2EiMOD__2EXP,axiom,
    c_2Enumeral__bit_2EiMOD__2EXP = c_2Ebit_2EMOD__2EXP ).

thf(thm_2Enumeral__bit_2EBIT__REV__def,axiom,
    ( ! [V0x: tyop_2Enum_2Enum,V1y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__REV @ c_2Enum_2E0 @ V0x @ V1y )
        = V1y )
    & ! [V2n: tyop_2Enum_2Enum,V3x: tyop_2Enum_2Enum,V4y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__REV @ ( c_2Enum_2ESUC @ V2n ) @ V3x @ V4y )
        = ( c_2Enumeral__bit_2EBIT__REV @ V2n @ ( c_2Earithmetic_2EDIV @ V3x @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2E_2A @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ V4y ) @ ( c_2Ebit_2ESBIT @ ( c_2Earithmetic_2EODD @ V3x ) @ c_2Enum_2E0 ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2EBIT__MODF__def,axiom,
    ( ! [V0f: tyop_2Enum_2Enum > $o > $o,V1x: tyop_2Enum_2Enum,V2b: tyop_2Enum_2Enum,V3e: tyop_2Enum_2Enum,V4y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__MODF @ c_2Enum_2E0 @ V0f @ V1x @ V2b @ V3e @ V4y )
        = V4y )
    & ! [V5n: tyop_2Enum_2Enum,V6f: tyop_2Enum_2Enum > $o > $o,V7x: tyop_2Enum_2Enum,V8b: tyop_2Enum_2Enum,V9e: tyop_2Enum_2Enum,V10y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__MODF @ ( c_2Enum_2ESUC @ V5n ) @ V6f @ V7x @ V8b @ V9e @ V10y )
        = ( c_2Enumeral__bit_2EBIT__MODF @ V5n @ V6f @ ( c_2Earithmetic_2EDIV @ V7x @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2E_2B @ V8b @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2E_2A @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ V9e ) @ ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( V6f @ V8b @ ( c_2Earithmetic_2EODD @ V7x ) ) @ ( c_2Earithmetic_2E_2B @ V9e @ V10y ) @ V10y ) ) ) ) ).

thf(thm_2Enumeral__bit_2EiBITWISE__def,axiom,
    c_2Enumeral__bit_2EiBITWISE = c_2Ebit_2EBITWISE ).

thf(thm_2Enumeral__bit_2EiSUC,axiom,
    c_2Enumeral__bit_2EiSUC = c_2Enum_2ESUC ).

thf(thm_2Enumeral__bit_2EiDIV2,axiom,
    c_2Enumeral__bit_2EiDIV2 = c_2Earithmetic_2EDIV2 ).

thf(thm_2Enumeral__bit_2ESFUNPOW__def,axiom,
    ( ! [V0f: tyop_2Enum_2Enum > tyop_2Enum_2Enum,V1x: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2ESFUNPOW @ V0f @ c_2Enum_2E0 @ V1x )
        = V1x )
    & ! [V2f: tyop_2Enum_2Enum > tyop_2Enum_2Enum,V3n: tyop_2Enum_2Enum,V4x: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2ESFUNPOW @ V2f @ ( c_2Enum_2ESUC @ V3n ) @ V4x )
        = ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Emin_2E_3D @ tyop_2Enum_2Enum @ V4x @ c_2Enum_2E0 ) @ c_2Enum_2E0 @ ( c_2Enumeral__bit_2ESFUNPOW @ V2f @ V3n @ ( V2f @ V4x ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2EFDUB__def,axiom,
    ( ! [V0f: tyop_2Enum_2Enum > tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EFDUB @ V0f @ c_2Enum_2E0 )
        = c_2Enum_2E0 )
    & ! [V1f: tyop_2Enum_2Enum > tyop_2Enum_2Enum,V2n: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EFDUB @ V1f @ ( c_2Enum_2ESUC @ V2n ) )
        = ( V1f @ ( V1f @ ( c_2Enum_2ESUC @ V2n ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2EiLOG2__def,axiom,
    ! [V0n: tyop_2Enum_2Enum] :
      ( ( c_2Enumeral__bit_2EiLOG2 @ V0n )
      = ( c_2Ebit_2ELOG2 @ ( c_2Earithmetic_2E_2B @ V0n @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2Enumeral__imod__2exp,axiom,
    ! [A_27a: $tType] :
      ( ! [V0n: tyop_2Enum_2Enum] :
          ( ( c_2Enumeral__bit_2EiMOD__2EXP @ c_2Enum_2E0 @ V0n )
          = c_2Earithmetic_2EZERO )
      & ! [V1x: tyop_2Enum_2Enum,V2n: A_27a] :
          ( ( c_2Enumeral__bit_2EiMOD__2EXP @ V1x @ c_2Earithmetic_2EZERO )
          = c_2Earithmetic_2EZERO )
      & ! [V3x: tyop_2Enum_2Enum,V4n: tyop_2Enum_2Enum] :
          ( ( c_2Enumeral__bit_2EiMOD__2EXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V3x ) ) @ ( c_2Earithmetic_2EBIT1 @ V4n ) )
          = ( c_2Earithmetic_2EBIT1 @ ( c_2Enumeral__bit_2EiMOD__2EXP @ ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V3x ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ V4n ) ) )
      & ! [V5x: tyop_2Enum_2Enum,V6n: tyop_2Enum_2Enum] :
          ( ( c_2Enumeral__bit_2EiMOD__2EXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V5x ) ) @ ( c_2Earithmetic_2EBIT1 @ V6n ) )
          = ( c_2Earithmetic_2EBIT1 @ ( c_2Enumeral__bit_2EiMOD__2EXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V5x ) ) @ V6n ) ) )
      & ! [V7x: tyop_2Enum_2Enum,V8n: tyop_2Enum_2Enum] :
          ( ( c_2Enumeral__bit_2EiMOD__2EXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V7x ) ) @ ( c_2Earithmetic_2EBIT2 @ V8n ) )
          = ( c_2Enumeral_2EiDUB @ ( c_2Enumeral__bit_2EiMOD__2EXP @ ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V7x ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Enum_2ESUC @ V8n ) ) ) )
      & ! [V9x: tyop_2Enum_2Enum,V10n: tyop_2Enum_2Enum] :
          ( ( c_2Enumeral__bit_2EiMOD__2EXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V9x ) ) @ ( c_2Earithmetic_2EBIT2 @ V10n ) )
          = ( c_2Enumeral_2EiDUB @ ( c_2Enumeral__bit_2EiMOD__2EXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V9x ) ) @ ( c_2Enum_2ESUC @ V10n ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2EMOD__2EXP,axiom,
    ( ! [V0x: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2EMOD__2EXP @ V0x @ c_2Enum_2E0 )
        = c_2Enum_2E0 )
    & ! [V1x: tyop_2Enum_2Enum,V2n: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2EMOD__2EXP @ V1x @ ( c_2Earithmetic_2ENUMERAL @ V2n ) )
        = ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral__bit_2EiMOD__2EXP @ V1x @ V2n ) ) ) ) ).

thf(thm_2Enumeral__bit_2EDIV__2EXP,axiom,
    ! [V0n: tyop_2Enum_2Enum,V1x: tyop_2Enum_2Enum] :
      ( ( c_2Ebit_2EDIV__2EXP @ V0n @ V1x )
      = ( c_2Earithmetic_2EFUNPOW @ tyop_2Enum_2Enum @ c_2Earithmetic_2EDIV2 @ V0n @ V1x ) ) ).

thf(thm_2Enumeral__bit_2Enumeral__mod2,axiom,
    ( ( ( c_2Earithmetic_2EMOD @ c_2Enum_2E0 @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) )
      = c_2Enum_2E0 )
    & ! [V0n: tyop_2Enum_2Enum] :
        ( ( c_2Earithmetic_2EMOD @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) )
        = ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) )
    & ! [V1n: tyop_2Enum_2Enum] :
        ( ( c_2Earithmetic_2EMOD @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V1n ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) )
        = c_2Enum_2E0 ) ) ).

thf(thm_2Enumeral__bit_2EiDUB__NUMERAL,axiom,
    ! [V0i: tyop_2Enum_2Enum] :
      ( ( c_2Enumeral_2EiDUB @ ( c_2Earithmetic_2ENUMERAL @ V0i ) )
      = ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral_2EiDUB @ V0i ) ) ) ).

thf(thm_2Enumeral__bit_2EBIT__REVERSE__EVAL,axiom,
    ! [V0m: tyop_2Enum_2Enum,V1n: tyop_2Enum_2Enum] :
      ( ( c_2Ebit_2EBIT__REVERSE @ V0m @ V1n )
      = ( c_2Enumeral__bit_2EBIT__REV @ V0m @ V1n @ c_2Enum_2E0 ) ) ).

thf(thm_2Enumeral__bit_2EBIT__MODIFY__EVAL,axiom,
    ! [V0m: tyop_2Enum_2Enum,V1f: tyop_2Enum_2Enum > $o > $o,V2n: tyop_2Enum_2Enum] :
      ( ( c_2Ebit_2EBIT__MODIFY @ V0m @ V1f @ V2n )
      = ( c_2Enumeral__bit_2EBIT__MODF @ V0m @ V1f @ V2n @ c_2Enum_2E0 @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) @ c_2Enum_2E0 ) ) ).

thf(thm_2Enumeral__bit_2EiBITWISE,axiom,
    ( ! [V0opr: $o > $o > $o,V1a: tyop_2Enum_2Enum,V2b: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EiBITWISE @ c_2Enum_2E0 @ V0opr @ V1a @ V2b )
        = c_2Earithmetic_2EZERO )
    & ! [V3x: tyop_2Enum_2Enum,V4opr: $o > $o > $o,V5a: tyop_2Enum_2Enum,V6b: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EiBITWISE @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V3x ) ) @ V4opr @ V5a @ V6b )
        = ( c_2Ebool_2ELET @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum
          @ ^ [V7w: tyop_2Enum_2Enum] : ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( V4opr @ ( c_2Earithmetic_2EODD @ V5a ) @ ( c_2Earithmetic_2EODD @ V6b ) ) @ ( c_2Earithmetic_2EBIT1 @ V7w ) @ ( c_2Enumeral_2EiDUB @ V7w ) )
          @ ( c_2Enumeral__bit_2EiBITWISE @ ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V3x ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ V4opr @ ( c_2Earithmetic_2EDIV2 @ V5a ) @ ( c_2Earithmetic_2EDIV2 @ V6b ) ) ) )
    & ! [V8x: tyop_2Enum_2Enum,V9opr: $o > $o > $o,V10a: tyop_2Enum_2Enum,V11b: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EiBITWISE @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V8x ) ) @ V9opr @ V10a @ V11b )
        = ( c_2Ebool_2ELET @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum
          @ ^ [V12w: tyop_2Enum_2Enum] : ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( V9opr @ ( c_2Earithmetic_2EODD @ V10a ) @ ( c_2Earithmetic_2EODD @ V11b ) ) @ ( c_2Earithmetic_2EBIT1 @ V12w ) @ ( c_2Enumeral_2EiDUB @ V12w ) )
          @ ( c_2Enumeral__bit_2EiBITWISE @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V8x ) ) @ V9opr @ ( c_2Earithmetic_2EDIV2 @ V10a ) @ ( c_2Earithmetic_2EDIV2 @ V11b ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2ENUMERAL__BITWISE,axiom,
    ! [A_27a: $tType] :
      ( ! [V0x: tyop_2Enum_2Enum,V1f: $o > $o > $o,V2a: A_27a] :
          ( ( c_2Ebit_2EBITWISE @ V0x @ V1f @ c_2Enum_2E0 @ c_2Enum_2E0 )
          = ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral__bit_2EiBITWISE @ V0x @ V1f @ c_2Enum_2E0 @ c_2Enum_2E0 ) ) )
      & ! [V3x: tyop_2Enum_2Enum,V4f: $o > $o > $o,V5a: tyop_2Enum_2Enum] :
          ( ( c_2Ebit_2EBITWISE @ V3x @ V4f @ ( c_2Earithmetic_2ENUMERAL @ V5a ) @ c_2Enum_2E0 )
          = ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral__bit_2EiBITWISE @ V3x @ V4f @ ( c_2Earithmetic_2ENUMERAL @ V5a ) @ c_2Enum_2E0 ) ) )
      & ! [V6x: tyop_2Enum_2Enum,V7f: $o > $o > $o,V8b: tyop_2Enum_2Enum] :
          ( ( c_2Ebit_2EBITWISE @ V6x @ V7f @ c_2Enum_2E0 @ ( c_2Earithmetic_2ENUMERAL @ V8b ) )
          = ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral__bit_2EiBITWISE @ V6x @ V7f @ c_2Enum_2E0 @ ( c_2Earithmetic_2ENUMERAL @ V8b ) ) ) )
      & ! [V9x: tyop_2Enum_2Enum,V10f: $o > $o > $o,V11a: tyop_2Enum_2Enum,V12b: tyop_2Enum_2Enum] :
          ( ( c_2Ebit_2EBITWISE @ V9x @ V10f @ ( c_2Earithmetic_2ENUMERAL @ V11a ) @ ( c_2Earithmetic_2ENUMERAL @ V12b ) )
          = ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral__bit_2EiBITWISE @ V9x @ V10f @ ( c_2Earithmetic_2ENUMERAL @ V11a ) @ ( c_2Earithmetic_2ENUMERAL @ V12b ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2ENUMERAL__BIT__REV,axiom,
    ( ! [V0x: tyop_2Enum_2Enum,V1y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__REV @ c_2Enum_2E0 @ V0x @ V1y )
        = V1y )
    & ! [V2n: tyop_2Enum_2Enum,V3y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__REV @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V2n ) ) @ c_2Enum_2E0 @ V3y )
        = ( c_2Enumeral__bit_2EBIT__REV @ ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V2n ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ c_2Enum_2E0 @ ( c_2Enumeral_2EiDUB @ V3y ) ) )
    & ! [V4n: tyop_2Enum_2Enum,V5y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__REV @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V4n ) ) @ c_2Enum_2E0 @ V5y )
        = ( c_2Enumeral__bit_2EBIT__REV @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V4n ) ) @ c_2Enum_2E0 @ ( c_2Enumeral_2EiDUB @ V5y ) ) )
    & ! [V6n: tyop_2Enum_2Enum,V7x: tyop_2Enum_2Enum,V8y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__REV @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V6n ) ) @ ( c_2Earithmetic_2ENUMERAL @ V7x ) @ V8y )
        = ( c_2Enumeral__bit_2EBIT__REV @ ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V6n ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2EDIV2 @ ( c_2Earithmetic_2ENUMERAL @ V7x ) ) @ ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Earithmetic_2EODD @ V7x ) @ ( c_2Earithmetic_2EBIT1 @ V8y ) @ ( c_2Enumeral_2EiDUB @ V8y ) ) ) )
    & ! [V9n: tyop_2Enum_2Enum,V10x: tyop_2Enum_2Enum,V11y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__REV @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V9n ) ) @ ( c_2Earithmetic_2ENUMERAL @ V10x ) @ V11y )
        = ( c_2Enumeral__bit_2EBIT__REV @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V9n ) ) @ ( c_2Earithmetic_2EDIV2 @ ( c_2Earithmetic_2ENUMERAL @ V10x ) ) @ ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Earithmetic_2EODD @ V10x ) @ ( c_2Earithmetic_2EBIT1 @ V11y ) @ ( c_2Enumeral_2EiDUB @ V11y ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2ENUMERAL__BIT__REVERSE,axiom,
    ( ! [V0m: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2EBIT__REVERSE @ ( c_2Earithmetic_2ENUMERAL @ V0m ) @ c_2Enum_2E0 )
        = ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral__bit_2EBIT__REV @ ( c_2Earithmetic_2ENUMERAL @ V0m ) @ c_2Enum_2E0 @ c_2Earithmetic_2EZERO ) ) )
    & ! [V1n: tyop_2Enum_2Enum,V2m: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2EBIT__REVERSE @ ( c_2Earithmetic_2ENUMERAL @ V2m ) @ ( c_2Earithmetic_2ENUMERAL @ V1n ) )
        = ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral__bit_2EBIT__REV @ ( c_2Earithmetic_2ENUMERAL @ V2m ) @ ( c_2Earithmetic_2ENUMERAL @ V1n ) @ c_2Earithmetic_2EZERO ) ) ) ) ).

thf(thm_2Enumeral__bit_2ENUMERAL__BIT__MODF,axiom,
    ( ! [V0f: tyop_2Enum_2Enum > $o > $o,V1x: tyop_2Enum_2Enum,V2b: tyop_2Enum_2Enum,V3e: tyop_2Enum_2Enum,V4y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__MODF @ c_2Enum_2E0 @ V0f @ V1x @ V2b @ V3e @ V4y )
        = V4y )
    & ! [V5n: tyop_2Enum_2Enum,V6f: tyop_2Enum_2Enum > $o > $o,V7b: tyop_2Enum_2Enum,V8e: tyop_2Enum_2Enum,V9y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__MODF @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V5n ) ) @ V6f @ c_2Enum_2E0 @ V7b @ ( c_2Earithmetic_2ENUMERAL @ V8e ) @ V9y )
        = ( c_2Enumeral__bit_2EBIT__MODF @ ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V5n ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ V6f @ c_2Enum_2E0 @ ( c_2Earithmetic_2E_2B @ V7b @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral_2EiDUB @ V8e ) ) @ ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( V6f @ V7b @ c_2Ebool_2EF ) @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2ENUMERAL @ V8e ) @ V9y ) @ V9y ) ) )
    & ! [V10n: tyop_2Enum_2Enum,V11f: tyop_2Enum_2Enum > $o > $o,V12b: tyop_2Enum_2Enum,V13e: tyop_2Enum_2Enum,V14y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__MODF @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V10n ) ) @ V11f @ c_2Enum_2E0 @ V12b @ ( c_2Earithmetic_2ENUMERAL @ V13e ) @ V14y )
        = ( c_2Enumeral__bit_2EBIT__MODF @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V10n ) ) @ V11f @ c_2Enum_2E0 @ ( c_2Earithmetic_2E_2B @ V12b @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral_2EiDUB @ V13e ) ) @ ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( V11f @ V12b @ c_2Ebool_2EF ) @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2ENUMERAL @ V13e ) @ V14y ) @ V14y ) ) )
    & ! [V15n: tyop_2Enum_2Enum,V16f: tyop_2Enum_2Enum > $o > $o,V17x: tyop_2Enum_2Enum,V18b: tyop_2Enum_2Enum,V19e: tyop_2Enum_2Enum,V20y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__MODF @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V15n ) ) @ V16f @ ( c_2Earithmetic_2ENUMERAL @ V17x ) @ V18b @ ( c_2Earithmetic_2ENUMERAL @ V19e ) @ V20y )
        = ( c_2Enumeral__bit_2EBIT__MODF @ ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V15n ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ V16f @ ( c_2Earithmetic_2EDIV2 @ ( c_2Earithmetic_2ENUMERAL @ V17x ) ) @ ( c_2Earithmetic_2E_2B @ V18b @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral_2EiDUB @ V19e ) ) @ ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( V16f @ V18b @ ( c_2Earithmetic_2EODD @ V17x ) ) @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2ENUMERAL @ V19e ) @ V20y ) @ V20y ) ) )
    & ! [V21n: tyop_2Enum_2Enum,V22f: tyop_2Enum_2Enum > $o > $o,V23x: tyop_2Enum_2Enum,V24b: tyop_2Enum_2Enum,V25e: tyop_2Enum_2Enum,V26y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EBIT__MODF @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V21n ) ) @ V22f @ ( c_2Earithmetic_2ENUMERAL @ V23x ) @ V24b @ ( c_2Earithmetic_2ENUMERAL @ V25e ) @ V26y )
        = ( c_2Enumeral__bit_2EBIT__MODF @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V21n ) ) @ V22f @ ( c_2Earithmetic_2EDIV2 @ ( c_2Earithmetic_2ENUMERAL @ V23x ) ) @ ( c_2Earithmetic_2E_2B @ V24b @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral_2EiDUB @ V25e ) ) @ ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( V22f @ V24b @ ( c_2Earithmetic_2EODD @ V23x ) ) @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2ENUMERAL @ V25e ) @ V26y ) @ V26y ) ) ) ) ).

thf(thm_2Enumeral__bit_2ENUMERAL__BIT__MODIFY,axiom,
    ( ! [V0m: tyop_2Enum_2Enum,V1f: tyop_2Enum_2Enum > $o > $o] :
        ( ( c_2Ebit_2EBIT__MODIFY @ ( c_2Earithmetic_2ENUMERAL @ V0m ) @ V1f @ c_2Enum_2E0 )
        = ( c_2Enumeral__bit_2EBIT__MODF @ ( c_2Earithmetic_2ENUMERAL @ V0m ) @ V1f @ c_2Enum_2E0 @ c_2Enum_2E0 @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) @ c_2Enum_2E0 ) )
    & ! [V2m: tyop_2Enum_2Enum,V3f: tyop_2Enum_2Enum > $o > $o,V4n: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2EBIT__MODIFY @ ( c_2Earithmetic_2ENUMERAL @ V2m ) @ V3f @ ( c_2Earithmetic_2ENUMERAL @ V4n ) )
        = ( c_2Enumeral__bit_2EBIT__MODF @ ( c_2Earithmetic_2ENUMERAL @ V2m ) @ V3f @ ( c_2Earithmetic_2ENUMERAL @ V4n ) @ c_2Enum_2E0 @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) @ c_2Enum_2E0 ) ) ) ).

thf(thm_2Enumeral__bit_2ENUMERAL__TIMES__2EXP,axiom,
    ( ! [V0n: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2ETIMES__2EXP @ V0n @ c_2Enum_2E0 )
        = c_2Enum_2E0 )
    & ! [V1n: tyop_2Enum_2Enum,V2x: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2ETIMES__2EXP @ V1n @ ( c_2Earithmetic_2ENUMERAL @ V2x ) )
        = ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral__bit_2ESFUNPOW @ c_2Enumeral_2EiDUB @ V1n @ V2x ) ) ) ) ).

thf(thm_2Enumeral__bit_2ENUMERAL__iDIV2,axiom,
    ! [V0n: tyop_2Enum_2Enum] :
      ( ( ( c_2Enumeral__bit_2EiDIV2 @ c_2Earithmetic_2EZERO )
        = c_2Earithmetic_2EZERO )
      & ( ( c_2Enumeral__bit_2EiDIV2 @ ( c_2Enumeral__bit_2EiSUC @ c_2Earithmetic_2EZERO ) )
        = c_2Earithmetic_2EZERO )
      & ( ( c_2Enumeral__bit_2EiDIV2 @ ( c_2Earithmetic_2EBIT1 @ V0n ) )
        = V0n )
      & ( ( c_2Enumeral__bit_2EiDIV2 @ ( c_2Enumeral__bit_2EiSUC @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) )
        = ( c_2Enumeral__bit_2EiSUC @ V0n ) )
      & ( ( c_2Enumeral__bit_2EiDIV2 @ ( c_2Earithmetic_2EBIT2 @ V0n ) )
        = ( c_2Enumeral__bit_2EiSUC @ V0n ) )
      & ( ( c_2Enumeral__bit_2EiDIV2 @ ( c_2Enumeral__bit_2EiSUC @ ( c_2Earithmetic_2EBIT2 @ V0n ) ) )
        = ( c_2Enumeral__bit_2EiSUC @ V0n ) )
      & ( ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral__bit_2EiSUC @ V0n ) )
        = ( c_2Earithmetic_2ENUMERAL @ ( c_2Enum_2ESUC @ V0n ) ) ) ) ).

thf(thm_2Enumeral__bit_2ENUMERAL__DIV__2EXP,axiom,
    ( ! [V0n: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2EDIV__2EXP @ V0n @ c_2Enum_2E0 )
        = c_2Enum_2E0 )
    & ! [V1n: tyop_2Enum_2Enum,V2x: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2EDIV__2EXP @ V1n @ ( c_2Earithmetic_2ENUMERAL @ V2x ) )
        = ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral__bit_2ESFUNPOW @ c_2Enumeral__bit_2EiDIV2 @ V1n @ V2x ) ) ) ) ).

thf(thm_2Enumeral__bit_2ENUMERAL__SFUNPOW__iDIV2,axiom,
    ( ! [V0x: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2ESFUNPOW @ c_2Enumeral__bit_2EiDIV2 @ c_2Enum_2E0 @ V0x )
        = V0x )
    & ! [V1y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2ESFUNPOW @ c_2Enumeral__bit_2EiDIV2 @ V1y @ c_2Enum_2E0 )
        = c_2Enum_2E0 )
    & ! [V2n: tyop_2Enum_2Enum,V3x: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2ESFUNPOW @ c_2Enumeral__bit_2EiDIV2 @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V2n ) ) @ V3x )
        = ( c_2Enumeral__bit_2ESFUNPOW @ ( c_2Enumeral__bit_2EFDUB @ c_2Enumeral__bit_2EiDIV2 ) @ ( c_2Earithmetic_2ENUMERAL @ V2n ) @ ( c_2Enumeral__bit_2EiDIV2 @ V3x ) ) )
    & ! [V4n: tyop_2Enum_2Enum,V5x: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2ESFUNPOW @ c_2Enumeral__bit_2EiDIV2 @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V4n ) ) @ V5x )
        = ( c_2Enumeral__bit_2ESFUNPOW @ ( c_2Enumeral__bit_2EFDUB @ c_2Enumeral__bit_2EiDIV2 ) @ ( c_2Earithmetic_2ENUMERAL @ V4n ) @ ( c_2Enumeral__bit_2EiDIV2 @ ( c_2Enumeral__bit_2EiDIV2 @ V5x ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2ENUMERAL__SFUNPOW__iDUB,axiom,
    ( ! [V0x: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2ESFUNPOW @ c_2Enumeral_2EiDUB @ c_2Enum_2E0 @ V0x )
        = V0x )
    & ! [V1y: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2ESFUNPOW @ c_2Enumeral_2EiDUB @ V1y @ c_2Enum_2E0 )
        = c_2Enum_2E0 )
    & ! [V2n: tyop_2Enum_2Enum,V3x: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2ESFUNPOW @ c_2Enumeral_2EiDUB @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V2n ) ) @ V3x )
        = ( c_2Enumeral__bit_2ESFUNPOW @ ( c_2Enumeral__bit_2EFDUB @ c_2Enumeral_2EiDUB ) @ ( c_2Earithmetic_2ENUMERAL @ V2n ) @ ( c_2Enumeral_2EiDUB @ V3x ) ) )
    & ! [V4n: tyop_2Enum_2Enum,V5x: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2ESFUNPOW @ c_2Enumeral_2EiDUB @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V4n ) ) @ V5x )
        = ( c_2Enumeral__bit_2ESFUNPOW @ ( c_2Enumeral__bit_2EFDUB @ c_2Enumeral_2EiDUB ) @ ( c_2Earithmetic_2ENUMERAL @ V4n ) @ ( c_2Enumeral_2EiDUB @ ( c_2Enumeral_2EiDUB @ V5x ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2ENUMERAL__SFUNPOW__FDUB,axiom,
    ! [V0f: tyop_2Enum_2Enum > tyop_2Enum_2Enum] :
      ( ! [V1x: tyop_2Enum_2Enum] :
          ( ( c_2Enumeral__bit_2ESFUNPOW @ ( c_2Enumeral__bit_2EFDUB @ V0f ) @ c_2Enum_2E0 @ V1x )
          = V1x )
      & ! [V2y: tyop_2Enum_2Enum] :
          ( ( c_2Enumeral__bit_2ESFUNPOW @ ( c_2Enumeral__bit_2EFDUB @ V0f ) @ V2y @ c_2Enum_2E0 )
          = c_2Enum_2E0 )
      & ! [V3n: tyop_2Enum_2Enum,V4x: tyop_2Enum_2Enum] :
          ( ( c_2Enumeral__bit_2ESFUNPOW @ ( c_2Enumeral__bit_2EFDUB @ V0f ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V3n ) ) @ V4x )
          = ( c_2Enumeral__bit_2ESFUNPOW @ ( c_2Enumeral__bit_2EFDUB @ ( c_2Enumeral__bit_2EFDUB @ V0f ) ) @ ( c_2Earithmetic_2ENUMERAL @ V3n ) @ ( c_2Enumeral__bit_2EFDUB @ V0f @ V4x ) ) )
      & ! [V5n: tyop_2Enum_2Enum,V6x: tyop_2Enum_2Enum] :
          ( ( c_2Enumeral__bit_2ESFUNPOW @ ( c_2Enumeral__bit_2EFDUB @ V0f ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V5n ) ) @ V6x )
          = ( c_2Enumeral__bit_2ESFUNPOW @ ( c_2Enumeral__bit_2EFDUB @ ( c_2Enumeral__bit_2EFDUB @ V0f ) ) @ ( c_2Earithmetic_2ENUMERAL @ V5n ) @ ( c_2Enumeral__bit_2EFDUB @ V0f @ ( c_2Enumeral__bit_2EFDUB @ V0f @ V6x ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2EFDUB__iDIV2,axiom,
    ! [V0x: tyop_2Enum_2Enum] :
      ( ( c_2Enumeral__bit_2EFDUB @ c_2Enumeral__bit_2EiDIV2 @ V0x )
      = ( c_2Enumeral__bit_2EiDIV2 @ ( c_2Enumeral__bit_2EiDIV2 @ V0x ) ) ) ).

thf(thm_2Enumeral__bit_2EFDUB__iDUB,axiom,
    ! [V0x: tyop_2Enum_2Enum] :
      ( ( c_2Enumeral__bit_2EFDUB @ c_2Enumeral_2EiDUB @ V0x )
      = ( c_2Enumeral_2EiDUB @ ( c_2Enumeral_2EiDUB @ V0x ) ) ) ).

thf(thm_2Enumeral__bit_2EFDUB__FDUB,axiom,
    ! [V0f: tyop_2Enum_2Enum > tyop_2Enum_2Enum] :
      ( ( ( c_2Enumeral__bit_2EFDUB @ ( c_2Enumeral__bit_2EFDUB @ V0f ) @ c_2Earithmetic_2EZERO )
        = c_2Earithmetic_2EZERO )
      & ! [V1x: tyop_2Enum_2Enum] :
          ( ( c_2Enumeral__bit_2EFDUB @ ( c_2Enumeral__bit_2EFDUB @ V0f ) @ ( c_2Enumeral__bit_2EiSUC @ V1x ) )
          = ( c_2Enumeral__bit_2EFDUB @ V0f @ ( c_2Enumeral__bit_2EFDUB @ V0f @ ( c_2Enumeral__bit_2EiSUC @ V1x ) ) ) )
      & ! [V2x: tyop_2Enum_2Enum] :
          ( ( c_2Enumeral__bit_2EFDUB @ ( c_2Enumeral__bit_2EFDUB @ V0f ) @ ( c_2Earithmetic_2EBIT1 @ V2x ) )
          = ( c_2Enumeral__bit_2EFDUB @ V0f @ ( c_2Enumeral__bit_2EFDUB @ V0f @ ( c_2Earithmetic_2EBIT1 @ V2x ) ) ) )
      & ! [V3x: tyop_2Enum_2Enum] :
          ( ( c_2Enumeral__bit_2EFDUB @ ( c_2Enumeral__bit_2EFDUB @ V0f ) @ ( c_2Earithmetic_2EBIT2 @ V3x ) )
          = ( c_2Enumeral__bit_2EFDUB @ V0f @ ( c_2Enumeral__bit_2EFDUB @ V0f @ ( c_2Earithmetic_2EBIT2 @ V3x ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2ELOG__compute,axiom,
    ! [V0base_20_3C_202_20or_20n_20_3D_200: $o,V1m: tyop_2Enum_2Enum,V2n: tyop_2Enum_2Enum] :
      ( ( c_2Elogroot_2ELOG @ V1m @ V2n )
      = ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Ebool_2E_5C_2F @ ( c_2Eprim__rec_2E_3C @ V1m @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Emin_2E_3D @ tyop_2Enum_2Enum @ V2n @ c_2Enum_2E0 ) ) @ ( c_2Ecombin_2EFAIL @ ( tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ) @ $o @ c_2Elogroot_2ELOG @ V0base_20_3C_202_20or_20n_20_3D_200 @ V1m @ V2n ) @ ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Eprim__rec_2E_3C @ V2n @ V1m ) @ c_2Enum_2E0 @ ( c_2Enum_2ESUC @ ( c_2Elogroot_2ELOG @ V1m @ ( c_2Earithmetic_2EDIV @ V2n @ V1m ) ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2Enumeral__ilog2,axiom,
    ( ( ( c_2Enumeral__bit_2EiLOG2 @ c_2Earithmetic_2EZERO )
      = c_2Enum_2E0 )
    & ! [V0n: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EiLOG2 @ ( c_2Earithmetic_2EBIT1 @ V0n ) )
        = ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) @ ( c_2Enumeral__bit_2EiLOG2 @ V0n ) ) )
    & ! [V1n: tyop_2Enum_2Enum] :
        ( ( c_2Enumeral__bit_2EiLOG2 @ ( c_2Earithmetic_2EBIT2 @ V1n ) )
        = ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) @ ( c_2Enumeral__bit_2EiLOG2 @ V1n ) ) ) ) ).

thf(thm_2Enumeral__bit_2Enumeral__log2,axiom,
    ( ! [V0n: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2ELOG2 @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) )
        = ( c_2Enumeral__bit_2EiLOG2 @ ( c_2Enumeral_2EiDUB @ V0n ) ) )
    & ! [V1n: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2ELOG2 @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V1n ) ) )
        = ( c_2Enumeral__bit_2EiLOG2 @ ( c_2Earithmetic_2EBIT1 @ V1n ) ) ) ) ).

thf(thm_2Enumeral__bit_2EMOD__2EXP__EQ,axiom,
    ( ! [V0a: tyop_2Enum_2Enum,V1b: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2EMOD__2EXP__EQ @ c_2Enum_2E0 @ V0a @ V1b )
        = c_2Ebool_2ET )
    & ! [V2n: tyop_2Enum_2Enum,V3a: tyop_2Enum_2Enum,V4b: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2EMOD__2EXP__EQ @ ( c_2Enum_2ESUC @ V2n ) @ V3a @ V4b )
      <=> ( ( ( c_2Earithmetic_2EODD @ V3a )
            = ( c_2Earithmetic_2EODD @ V4b ) )
          & ( c_2Ebit_2EMOD__2EXP__EQ @ V2n @ ( c_2Earithmetic_2EDIV2 @ V3a ) @ ( c_2Earithmetic_2EDIV2 @ V4b ) ) ) )
    & ! [V5n: tyop_2Enum_2Enum,V6a: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2EMOD__2EXP__EQ @ V5n @ V6a @ V6a )
        = c_2Ebool_2ET ) ) ).

thf(thm_2Enumeral__bit_2EMOD__2EXP__MAX,axiom,
    ( ! [V0a: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2EMOD__2EXP__MAX @ c_2Enum_2E0 @ V0a )
        = c_2Ebool_2ET )
    & ! [V1n: tyop_2Enum_2Enum,V2a: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2EMOD__2EXP__MAX @ ( c_2Enum_2ESUC @ V1n ) @ V2a )
      <=> ( ( c_2Earithmetic_2EODD @ V2a )
          & ( c_2Ebit_2EMOD__2EXP__MAX @ V1n @ ( c_2Earithmetic_2EDIV2 @ V2a ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2ELOWEST__SET__BIT,axiom,
    ! [V0n: tyop_2Enum_2Enum] :
      ( ( (~) @ ( V0n = c_2Enum_2E0 ) )
     => ( ( c_2Ebit_2ELOWEST__SET__BIT @ V0n )
        = ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Earithmetic_2EODD @ V0n ) @ c_2Enum_2E0 @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) @ ( c_2Ebit_2ELOWEST__SET__BIT @ ( c_2Earithmetic_2EDIV2 @ V0n ) ) ) ) ) ) ).

thf(thm_2Enumeral__bit_2ELOWEST__SET__BIT__compute,axiom,
    ( ! [V0n: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2ELOWEST__SET__BIT @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V0n ) ) )
        = ( c_2Enum_2ESUC @ ( c_2Ebit_2ELOWEST__SET__BIT @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Enum_2ESUC @ V0n ) ) ) ) )
    & ! [V1n: tyop_2Enum_2Enum] :
        ( ( c_2Ebit_2ELOWEST__SET__BIT @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V1n ) ) )
        = c_2Enum_2E0 ) ) ).

%------------------------------------------------------------------------------